#Le répertoire de l'exécutable
BINDIR = ./bin/

#Le répertoire des sources
SRCDIR = ./src/

#Le répertoire de la doc
DOCDIR = ./doc/

#Le répertoire des objets binaires
OBJDIR = $(BINDIR)obj/

#Le répertoire des librairies
LIBDIR = ./lib/

#Le compilateur c++ utilisé par le Makefile. Par défaut le compilateur
#est g++. Si vous en changez, merci de vous assurer que votre code
#compile aussi avec g++.
CXX = g++

INCLUDES =  -I$(SRCDIR) -I$(LIBDIR)/boost.regex/include/ -I$(LIBDIR)/boost.regex/include/boost -I$(LIBDIR)/boost.regex/include/boost/regex/

#Les options du compilateur c++
CXXOPT = -g -ansi -Wall $(INCLUDES)

#Liste des objets à fabriquer (mais pas le main!)
OBJS = $(OBJDIR)SystemeDeVersionnage.o $(OBJDIR)VersionnageALaGNU.o $(OBJDIR)Version.o $(OBJDIR)ExceptionDeVersion.o

test: $(OBJS)
	make -f Makefile_test run NONTESTOBJS='$(OBJS)'
.PHONY: doc
doc: 
	doxygen $(DOCDIR)gestion.doxyconf
	
#Règles de compilation pour le programme lui-même :

$(OBJDIR)%.o: $(SRCDIR)%.cpp $(SRCDIR)%.h
	$(CXX) $(CXXOPT) -c $(SRCDIR)$*.cpp -o $(OBJDIR)$*.o

.PHONY : mrproper
mrproper: clean
	make -f Makefile_test mrproper
.PHONY : clean
clean:
	rm -f $(OBJDIR)*.o
	make -f Makefile_test clean
